package java_learn.java_jinjie.object;

import java.util.ArrayList;
import java.util.Iterator;


public class DemoGeneric {
    public static void main(String[] args) {
        demo01();
        demo02();
    }

    /**
     * 创建集合对象，使用泛型
     * 好处：
     * 1.避免了类型转换的麻烦，存储的是什么类型，取出的就是什么类型
     * 2.把运行期异常，提升到了编译期异常
     * 弊端：泛型是什么类型，就只能存储什么类型数据（忽略不计）
     */
    private static void demo02() {
    }

    /**
     * 创建集合对象，不使用泛型
     * 好处：集合不使用泛型，默认类型是object类型，可以存储任意类型数据
     * 弊端：不安全，会引发异常
     */
    private static void demo01() {
        ArrayList list = new ArrayList();
        list.add("213");
        list.add(1);
        Iterator it = list.iterator();
        while (it.hasNext()) {
            Object obj = it.hasNext();
            String s = (String) obj;
            //会抛出ClassCastException（类型转换异常，不能把Integer类型转为String）
            System.out.println(s.length());
        }
    }
}
